import axios from "axios";
import { ElMessage } from "element-plus";
import useUserStore from "@/stores/user.js";


//创建axios实例
const request = axios.create({
  baseURL: '/api',
  timeout: 5000
})

//请求拦截器
request.interceptors.request.use(config => {
  //在发送请求之前做些什么
  //判断是否有token
  const userStore = useUserStore();
  if (userStore.token) {
    //如果有token，在请求头中携带token
    config.headers.token = userStore.token;
  }



  // config:配置对象，有headers属性请求头，经常给服务器端携带公共参数
  // 不返回config则请求发不出去
  return config;
});

//响应拦截器
request.interceptors.response.use((response) => {
  return response.data;
}, (error) => {
  //处理网络错误
  let msg = '';
  let status = error.response.status;
  switch (status) {
    case 401:
      msg = "token过期";
      break;
    case 403:
      msg = '无权访问';
      break;
    case 404:
      msg = "请求地址错误";
      break;
    case 500:
      msg = "服务器出现问题";
      break;
    default:
      msg = "无网络";
      break;
  }
  ElMessage({
    type: 'error',
    message: msg
  })
  return Promise.reject(error);
});
export default request;